﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace V82.ОбщиеМодули
{
	public partial class УправлениеЗатратами
	{
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ ОБЩЕГО НАЗНАЧЕНИЯ
		// Функция получает дату для запроса по данным документа.
		// Для документов, имеющих реквизит ДатаОкончанияПериода, возвращается значение этого реквизита,
		// для новых (еще не записанных) документов возвращается дата конца дня документа, для записанных - дата документа.
		//
		// Параметры:
		//	ДокументОбъект - ДокументОбъект - Документ
		//	МетаданныеДокумента - Метаданные - Метаданные документа
		//
		// Возвращаемое значение:
		//	Дата - Дата для формирования запроса
		//

		public object ПолучитьДатуДляЗапроса(/*ДокументОбъект, МетаданныеДокумента = Неопределено*/)
		{
			/*ЕстьДатаОкончанияПериода = (МетаданныеДокумента <> Неопределено) 
		И (МетаданныеДокумента.Реквизиты.Найти("ДатаОкончанияПериода") <> Неопределено);*/
			if(true/*ЕстьДатаОкончанияПериода И ЗначениеЗаполнено(ДокументОбъект.ДатаОкончанияПериода)*/)
			{
				//Дата = ДокументОбъект.ДатаОкончанияПериода;
			}
			return null;
		}
		// ПолучитьДатуДляЗапроса()
		// Процедура удаляет из строки имен реквизитов, проверяемых на заполненность
		// реквизиты, которые зависят от типа учета документа
		//
		// Параметры:
		//		ДокОбъект - проверяемый документ
		//		СтрокаРекв   - Строка с именами реквизитов, которые надо проверять на заполненность
		//      УпрРеквизиты - строка, с именами реквизитов имеющих смысл
		// 					   только в случае если документ отражается в упр.учете
		//      БухРеквизиты - строка, с именами реквизитов имеющих смысл
		// 					   только в случае если документ отражается в регл.(бух.) учете
		//      НалРеквизиты - строка, с именами реквизитов имеющих смысл
		// 					   только в случае если документ отражается в регл.(нал.) учете
		//		ИмяТабЧасти  - имя проверяемой табл. части документа
		//

		public void НепроверятьРеквизитыПоТипуУчета(/*ДокОбъект, СтрокаРекв, СтруктураШапкиДокумента, Знач УпрРеквизиты, Знач БухРеквизиты, Знач НалРеквизиты, ИмяТабЧасти = ""*/)
		{
			//Стр = СтрЗаменить(СтрокаРекв, " ", "");
			//СтруктРекв = Новый Структура(Стр);
			//СтрокаРекв = "";
			/*// Убрать пробелы и символы перевода строки
*/
			//УпрРекв = СтрЗаменить(УпрРеквизиты, " ", "");
			//УпрРекв = СтрЗаменить(УпрРекв, Символы.ПС,  "");
			//УпрРекв = "," + СтрЗаменить(УпрРекв, Символы.Таб, "") + ",";
			//БухРекв = СтрЗаменить(БухРеквизиты, " ", "");
			//БухРекв = СтрЗаменить(БухРекв, Символы.ПС,  "");
			//БухРекв = "," + СтрЗаменить(БухРекв, Символы.Таб, "") + ",";
			//НалРекв = СтрЗаменить(НалРеквизиты, " ", "");
			//НалРекв = СтрЗаменить(НалРекв, Символы.ПС,  "");
			//НалРекв = "," + СтрЗаменить(НалРекв, Символы.Таб, "") + ",";
			//ОрганизацияПрименяетУСН = ?(СтруктураШапкиДокумента.Свойство("ОрганизацияПрименяетУСН"), СтруктураШапкиДокумента.ОрганизацияПрименяетУСН, Ложь);
			//УпрУчет = ?(СтруктураШапкиДокумента.Свойство("ОтражатьВУправленческомУчете"),СтруктураШапкиДокумента.ОтражатьВУправленческомУчете,Ложь);
			//БухУчет = ?(СтруктураШапкиДокумента.Свойство("ОтражатьВБухгалтерскомУчете"), СтруктураШапкиДокумента.ОтражатьВБухгалтерскомУчете, Ложь);
			//НалУчет = ?(СтруктураШапкиДокумента.Свойство("ОтражатьВНалоговомУчете"),	 СтруктураШапкиДокумента.ОтражатьВНалоговомУчете и не ОрганизацияПрименяетУСН, Ложь);
			/*// Исключим из списка проверяемых реквизитов, те которые относятся к конкретному
*/
			/*// виду учета и этот вид учета выключен
*/
		}
		// НепроверятьРеквизитыПоТипуУчета()
		// Функция заменяет комментарии в тексте запроса в зависимости от отражения документа в учете.
		//
		// Параметры
		//  ИсходныйТекстЗапроса – Строка – Текст запроса.
		//	ВидОтраженияВУчете - ПеречислениеСсылка.ВидыОтраженияВУчете - Вид отражения в учете
		//
		// Возвращаемое значение
		//   Строка – Текст запроса, в котором заменены комментарии.
		//

		public object ЗаменитьКомментарииВТекстеЗапроса(/*
	ИсходныйТекстЗапроса, 
	ВидОтраженияВУчете
	*/)
		{
			if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете*/)
			{
				//ТекстЗапроса = СтрЗаменить(ИсходныйТекстЗапроса, "%СуффиксУчета%", "");
				//ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%СуффиксОрганизаций%", "");
				//ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%СуффиксРегл%", "");
				//ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "//ДляУпрУчета", "");
			}
			return null;
		}
		// ЗаменитьКомментарииВТекстеЗапроса()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ ВЫВОДА СООБЩЕНИЙ ОБ ОШИБКАХ
		// Функция формирует таблицу ошибок.
		//
		// Возвращаемое значение:
		//	ТаблицаЗначений - Таблица ошибок
		//

		public object СформироватьТаблицуОшибок(/**/)
		{
			//ТаблицаОшибок = Новый ТаблицаЗначений;
			//Колонки = ТаблицаОшибок.Колонки;
			//Колонки.Добавить("Группа", Новый ОписаниеТипов("Строка"));
			//Колонки.Добавить("Сообщение", Новый ОписаниеТипов("Строка"));
			//Колонки.Добавить("Объект");
			return null;
		}
		// СформироватьТаблицуОшибок()
		// Функция формирует расшифровку для открытия отчета.
		//
		// Параметры:
		//	ИмяОтчета - Строка - Имя отчета
		//

		public object СформироватьРасшифровкуОткрытияОтчета(/*ИмяОтчета*/)
		{
			//МассивРасшифровки = Новый Массив;
			//МассивРасшифровки.Добавить("ОткрытьОтчет");
			//МассивРасшифровки.Добавить(ИмяОтчета);
			//СтруктураРасшифровки = Новый Структура;
			//СтруктураРасшифровки.Вставить("Представление", " (открыть отчет)");
			//СтруктураРасшифровки.Вставить("Расшифровка", МассивРасшифровки);
			//Расшифровка = Новый Массив;
			//Расшифровка.Добавить(СтруктураРасшифровки);
			return null;
		}
		// ПолучитьРасшифровкуОткрытьОтчет()
		// Процедура выводит сообщения об ошибках.
		//

		public void ВывестиСообщенияОбОшибках(/*
	СтруктураШапкиДокумента,
	ТаблицаОшибок,
	Заголовок
	*/)
		{
			if(true/*ТаблицаОшибок.Количество() = 0*/)
			{
			}
			//ТаблицаОшибок.Свернуть("Группа, Сообщение, Объект", "");
			if(true/*Не ПустаяСтрока(Заголовок)*/)
			{
				/*// Заголовок
*/
				/*// РасшифровкаСообщения
*/
				/*// РодительскаяСтрока
*/
				/*// РаскрытьСообщение
*/
				//);
			}
			//ТекущаяГруппа = "";
		}
		// ВывестиСообщенияОбОшибках()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ РАБОТЫ СО СТАТЬЯМИ ЗАТРАТ И СЧЕТАМИ ЗАТРАТ
		// Функция возвращает счет учета для указанной статьи затрат
		//
		// Параметры:
		//  Подразделение - Подразделение, для которого определяются счет
		//  СтатьяЗатрат  - Счатья затрат, для которой определяются счет
		//  КоррСчет      - корреспондирующий счет
		//	ВидУчета      - вид учета, счет которого надо получить
		//
		// Возвращаемое значение:
		//  Структура - структура счетов по всем разделам учета, если не задано значение
		//		параметра ВидУчета
		//  Счет, если задано значение параметра ВидУчета. Счет возвращается
		//		в соответствии с запришиваемым видом учета.
		//

		public object ПолучитьСчетаУчетаСтатьиЗатрат(/*Подразделение, СтатьяЗатрат, КорСчет = неопределено*/)
		{
			//ПустоеПодразделение = НЕ ЗначениеЗаполнено(Подразделение);
			//ПустаяСтатьяЗатрат  = НЕ ЗначениеЗаполнено(СтатьяЗатрат);
			//ПланСчетовБух       = ПланыСчетов.Хозрасчетный;
			//Счет                = ПланСчетовБух.ПустаяСсылка();
			//ВидЗатратНУ         = Перечисления.ВидыРасходовНУ.ПустаяСсылка();
			if(true/*ПустаяСтатьяЗатрат И Не ПустоеПодразделение*/)
			{
				if(true/*Подразделение.ВидПодразделения = Перечисления.ВидыПодразделений.ОсновноеПроизводство*/)
				{
					//Счет = ПланСчетовБух.ОсновноеПроизводствоНеОблагаемоеЕНВД;
				}
			}
			//Результат = Новый Структура("СчетУчетаБУ, СчетУчетаНУ");
			/*// Приведем значения корсчета и вида затрат к типу, пригодному для функции ПреобразоватьСчетаБУвСчетНУ()
*/
			//СчетКоррБУ = ?(ЗначениеЗаполнено(КорСчет), КорСчет, ПланыСчетов.Хозрасчетный.ПустаяСсылка());
			if(true/*НЕ ЗначениеЗаполнено(ВидЗатратНУ)*/)
			{
				//ВидЗатратНУ = Неопределено;
			}
			/*// Найдем наиболее подходящий под критерии счет учета НУ
*/
			//Отбор = Новый Структура();
			//Отбор.Вставить("СчетБУ",      Счет);
			//Отбор.Вставить("СчетКоррБУ",  СчетКоррБУ);
			//Отбор.Вставить("ВидЗатратНУ", ВидЗатратНУ);
			//СчетНУ = БухгалтерскийУчет.ПреобразоватьСчетаБУвСчетНУ(Отбор);
			/*// Если не удалось заполнить СчетНУ с учетом трех параметров отбора,
*/
			/*// попробуем варианты с более мягкими условиями отбора
*/
			if(true/*НЕ ЗначениеЗаполнено(СчетНУ)*/)
			{
				//Отбор.Вставить("СчетКоррБУ",  СчетКоррБУ);
				//Отбор.Вставить("ВидЗатратНУ", Неопределено);
				//СчетНУ = БухгалтерскийУчет.ПреобразоватьСчетаБУвСчетНУ(Отбор);
			}
			if(true/*НЕ ЗначениеЗаполнено(СчетНУ)*/)
			{
				//Отбор.Вставить("ВидЗатратНУ", ВидЗатратНУ);
				//Отбор.Вставить("СчетКоррБУ",  ПланыСчетов.Хозрасчетный.ПустаяСсылка());
				//СчетНУ = БухгалтерскийУчет.ПреобразоватьСчетаБУвСчетНУ(Отбор);
			}
			if(true/*НЕ ЗначениеЗаполнено(СчетНУ)*/)
			{
				//Отбор.Вставить("ВидЗатратНУ", Неопределено);
				//Отбор.Вставить("СчетКоррБУ",  ПланыСчетов.Хозрасчетный.ПустаяСсылка());
				//СчетНУ = БухгалтерскийУчет.ПреобразоватьСчетаБУвСчетНУ(Отбор);
			}
			//Результат.СчетУчетаБУ   = Счет;
			//Результат.СчетУчетаНУ   = СчетНУ;
			return null;
		}
		// ПолучитьСчетаУчетаСтатьиЗатрат()
		// Функция проверяет является ли статья затрат производственной
		//
		// Параметры:
		//  СтатьяЗатрат  - Счатья затрат, для которой определяется отнесение к производственным расходам
		//
		// Возвращаемое значение:
		//  Истина - статья затрат относится к производственным расходам.
		//

		public object ПроверитьСтатьюЗатратНаПроизводственныеРасходы(/*СтатьяЗатрат*/)
		{
			//Возврат НЕ (ЗначениеЗаполнено(СтатьяЗатрат) И СтатьяЗатрат.ХарактерЗатрат = Перечисления.ХарактерЗатрат.Прочие);
			return null;
		}
		// ПроверитьСтатьюЗатратНаПроизводственныеРасходы()
		// Функция проверяет является ли счет затрат производственным.
		//
		// Параметры:
		//  СчетЗатрат  - счет затрат, для которой определяется отнесение к производственным расходам
		//  ИмяПланСчетов  - план счетов, для которой определяется отнесение к производственным расходам
		//
		// Возвращаемое значение:
		//  Истина - счет затрат относится к производственным расходам (т.е. таким, которые учитываются в регистрах учета затрат).
		//           ВАЖНО: пустой счет считается относящимся к производственным расходам.
		//

		public object ПроверитьСчетЗатратНаПроизводственныеРасходы(/*СчетЗатрат, ИмяПланСчетов = "Хозрасчетный"*/)
		{
			//ХарактерЗатрат = ПолучитьХарактерЗатратПоСчетуЗатрат(СчетЗатрат, Неопределено, ИмяПланСчетов);
			//Возврат НЕ (ЗначениеЗаполнено(ХарактерЗатрат) И ХарактерЗатрат = Перечисления.ХарактерЗатрат.Прочие);
			return null;
		}
		// ПроверитьСчетЗатратНаПроизводственныеРасходы()
		// Функция возвращает значение характера затрат, соответствующего счету затрат.
		//
		// Параметры
		//  СчетЗатрат - ПланСчетовСсылка - счет затрат, по которому определяется характер затрат.
		//  СтатьяЗатрат - СправочникСсылка.СтатьиЗатрат - статья затрат для уточнения характера затрат.
		//  ИмяПланСчетов - Строка - имя плана счетов, которому принадлежит счет затрат.
		//
		// Возвращаемое значение:
		//   ПеречислениеСсылка.ХарактерЗатрат – характер затрат, соответствующий счету затрат.
		//

		public object ПолучитьХарактерЗатратПоСчетуЗатрат(/*СчетЗатрат, СтатьяЗатрат, ИмяПланСчетов = "Хозрасчетный"*/)
		{
			/*// Проверка счета затрат.
*/
			if(true/*НЕ ЗначениеЗаполнено(СчетЗатрат)*/)
			{
			}
			if(true/*СчетЗатрат = ПланыСчетов.Хозрасчетный.ОсновноеПроизводствоНеОблагаемоеЕНВД
		  ИЛИ СчетЗатрат = ПланыСчетов.Хозрасчетный.ОсновноеПроизводствоОблагаемоеЕНВД
		  ИЛИ СчетЗатрат = ПланыСчетов.Хозрасчетный.ВспомогательныеПроизводстваНеОблагаемоеЕНВД
		  ИЛИ СчетЗатрат = ПланыСчетов.Хозрасчетный.ВспомогательныеПроизводстваОблагаемоеЕНВД
		  ИЛИ СчетЗатрат = ПланыСчетов.Налоговый.ПрямыеРасходыОсновногоПроизводства
		  ИЛИ СчетЗатрат = ПланыСчетов.Налоговый.КосвенныеРасходыОсновногоПроизводства
		  ИЛИ СчетЗатрат = ПланыСчетов.Налоговый.ПрямыеРасходыВспомогательныхПроизводств
		  ИЛИ СчетЗатрат = ПланыСчетов.Налоговый.КосвенныеРасходыВспомогательныхПроизводств
		  ИЛИ СчетЗатрат = ПланыСчетов.Хозрасчетный.МатериалыПринятыеВПереработкуВПроизводстве
		  ИЛИ СчетЗатрат = ПланыСчетов[ИмяПланСчетов].ОсновноеПроизводство_
		  ИЛИ СчетЗатрат = ПланыСчетов[ИмяПланСчетов].ВспомогательныеПроизводства	
		  ИЛИ СчетЗатрат.ПринадлежитЭлементу(ПланыСчетов[ИмяПланСчетов].ОсновноеПроизводство_)
		  ИЛИ СчетЗатрат.ПринадлежитЭлементу(ПланыСчетов[ИмяПланСчетов].ВспомогательныеПроизводства)*/)
			{
				//ХарактерЗатрат = Перечисления.ХарактерЗатрат.ПроизводственныеРасходы;
			}
			return null;
		}
		// ПолучитьХарактерЗатратПоСчетуЗатрат()
		// Функция возвращает счет прямых расходов налогового учета, соответствующий счету бухгалтерского учета.
		//
		// Параметры:
		//	СчетБУ - ПланСчетовСсылка.Хозрасчетный - Счет бухгалтерского учета
		//
		// Возвращаемое значение:
		//	ПланСчетовСсылка.Налоговый - Счет прямых расходов по налоговому учету
		//

		public object ПолучитьСчетПрямыхРасходовНУ(/*СчетБУ*/)
		{
			//МассивСчетовНУ = Новый Массив;
			//МассивСчетовНУ.Добавить(ПланыСчетов.Налоговый.ПрямыеРасходыОсновногоПроизводства);
			//МассивСчетовНУ.Добавить(ПланыСчетов.Налоговый.ПрямыеРасходыВспомогательныхПроизводств);
			//МассивСчетовНУ.Добавить(ПланыСчетов.Налоговый.ПрямыеРасходыОбслуживающихПроизводств);
			//МассивСчетовНУ.Добавить(ПланыСчетов.Налоговый.ПрямыеОбщепроизводственныеРасходы);
			//МассивСчетовНУ.Добавить(ПланыСчетов.Налоговый.ПрямыеОбщехозяйственныеРасходы);
			//МассивСчетовНУ.Добавить(ПланыСчетов.Налоговый.ПрямыеРасходыПоВыявленномуБраку);
			//МассивСчетовНУ.Добавить(ПланыСчетов.Налоговый.РасходыПоДеятельностиЕНВД);
			/*// ВозвращатьСубконто
*/
			/*// ДатаСреза
*/
			/*МассивСчетовНУ
		);*/
			return null;
		}
		// ПолучитьСчетПрямыхРасходовНУ()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ ОТРАЖЕНИЯ ЗАТРАТ В РЕГИСТРАХ НАКОПЛЕНИЯ
		// Функция формирует структуру колонок для таблицы затрат.
		//
		// Возвращаемое значение:
		//	Структура - Структура колонок
		//

		public object СформироватьСтруктуруКолонокТаблицыЗатрат(/**/)
		{
			//СтруктураКолонок = Новый Структура;
			//СтруктураКолонок.Вставить("ВидДвижения", Новый ОписаниеТипов("ВидДвиженияНакопления"));
			//СтруктураКолонок.Вставить("КодОперацииНЗП", Новый ОписаниеТипов("ПеречислениеСсылка.КодыОперацийНезавершенноеПроизводство"));
			//МассивТипов = Новый Массив;
			//МассивТипов.Добавить(Тип("ПеречислениеСсылка.КодыОперацийЗатраты"));
			//МассивТипов.Добавить(Тип("ПеречислениеСсылка.КодыОперацийПартииМатериаловВЭксплуатации"));
			//СтруктураКолонок.Вставить("КодОперации", Новый ОписаниеТипов(МассивТипов));
			//СтруктураКолонок.Вставить("Организация", Новый ОписаниеТипов("СправочникСсылка.Организации"));
			//СтруктураКолонок.Вставить("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
			//СтруктураКолонок.Вставить("ХарактеристикаНоменклатуры", Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры"));
			//СтруктураКолонок.Вставить("СерияНоменклатуры", Новый ОписаниеТипов("СправочникСсылка.СерииНоменклатуры"));
			//СтруктураКолонок.Вставить("СтатьяЗатрат", Новый ОписаниеТипов("СправочникСсылка.СтатьиЗатрат"));
			//СтруктураКолонок.Вставить("НоменклатурнаяГруппа", Новый ОписаниеТипов("СправочникСсылка.НоменклатурныеГруппы"));
			//СтруктураКолонок.Вставить("Подразделение", Новый ОписаниеТипов("СправочникСсылка.Подразделения"));
			//СтруктураКолонок.Вставить("ПодразделениеОрганизации", Новый ОписаниеТипов("СправочникСсылка.ПодразделенияОрганизаций"));
			//СтруктураКолонок.Вставить("СпособРаспределенияЗатратНаВыпуск", Новый ОписаниеТипов("СправочникСсылка.СпособыРаспределенияЗатратНаВыпуск"));
			//МассивТиповЗаказа = Новый Массив;
			//МассивТиповЗаказа.Добавить(Тип("ДокументСсылка.ЗаказПокупателя"));
			//МассивТиповЗаказа.Добавить(Тип("ДокументСсылка.ЗаказНаПроизводство"));
			//СтруктураКолонок.Вставить("Заказ", Новый ОписаниеТипов(МассивТиповЗаказа));
			//МассивТиповПроекта = Новый Массив;
			//МассивТиповПроекта.Добавить(Тип("СправочникСсылка.Проекты"));
			//МассивТиповПроекта.Добавить(Тип("СправочникСсылка.ВидыРаспределенияПоПроектам"));
			//СтруктураКолонок.Вставить("Проект", Новый ОписаниеТипов(МассивТиповПроекта));
			//СтруктураКолонок.Вставить("ОбъектСтроительства", Новый ОписаниеТипов("СправочникСсылка.ОбъектыСтроительства"));
			//СтруктураКолонок.Вставить("СпособСтроительства", Новый ОписаниеТипов("ПеречислениеСсылка.СпособыСтроительства"));
			//СтруктураКолонок.Вставить("Продукция", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
			//СтруктураКолонок.Вставить("ХарактеристикаПродукции", Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры"));
			//СтруктураКолонок.Вставить("СерияПродукции", Новый ОписаниеТипов("СправочникСсылка.СерииНоменклатуры"));
			//СтруктураКолонок.Вставить("Количество", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3)));
			//СтруктураКолонок.Вставить("КоличествоУпр", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3)));
			//СтруктураКолонок.Вставить("КоличествоБух", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3)));
			//СтруктураКолонок.Вставить("КоличествоНал", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3)));
			//СтруктураКолонок.Вставить("Сумма", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
			//СтруктураКолонок.Вставить("СуммаУпр", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
			//СтруктураКолонок.Вставить("НДСУпр", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
			//СтруктураКолонок.Вставить("СуммаБезНДС", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
			//СтруктураКолонок.Вставить("СуммаРегл", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
			/*// сумма затрат для отражения в бух. и нал. учете
*/
			//СтруктураКолонок.Вставить("СуммаБух", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
			/*// сумма затрат для отражения в бух. учете
*/
			//СтруктураКолонок.Вставить("СуммаНал", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
			/*// сумма затрат для отражения в нал. учете
*/
			//СтруктураКолонок.Вставить("ПостояннаяРазница", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
			//СтруктураКолонок.Вставить("ВременнаяРазница", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2)));
			//СтруктураКолонок.Вставить("СчетУчетаБУ", Новый ОписаниеТипов("ПланСчетовСсылка.Хозрасчетный"));
			//СтруктураКолонок.Вставить("СчетУчетаНУ", Новый ОписаниеТипов("ПланСчетовСсылка.Налоговый"));
			//СтруктураКолонок.Вставить("СчетЗатрат", Новый ОписаниеТипов("ПланСчетовСсылка.Хозрасчетный"));
			//СтруктураКолонок.Вставить("СчетЗатратНУ", Новый ОписаниеТипов("ПланСчетовСсылка.Налоговый"));
			//ОписаниеТиповСубконто = Метаданные.ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Тип;
			//СтруктураКолонок.Вставить("Субконто1", ОписаниеТиповСубконто);
			//СтруктураКолонок.Вставить("Субконто2", ОписаниеТиповСубконто);
			//СтруктураКолонок.Вставить("Субконто3", ОписаниеТиповСубконто);
			//СтруктураКолонок.Вставить("СубконтоНУ1", ОписаниеТиповСубконто);
			//СтруктураКолонок.Вставить("СубконтоНУ2", ОписаниеТиповСубконто);
			//СтруктураКолонок.Вставить("СубконтоНУ3", ОписаниеТиповСубконто);
			//СтруктураКолонок.Вставить("КорАналитикаВидаУчета", Новый ОписаниеТипов("СправочникСсылка.КлючиАналитикиВидаУчета"));
			//СтруктураКолонок.Вставить("КорАналитикаУчетаЗатрат", Новый ОписаниеТипов("СправочникСсылка.КлючиАналитикиУчетаЗатрат"));
			//СтруктураКолонок.Вставить("КорАналитикаРаспределенияЗатрат", Новый ОписаниеТипов("СправочникСсылка.КлючиАналитикиРаспределенияЗатрат"));
			//СтруктураКолонок.Вставить("КорАналитикаУчетаПартий", Новый ОписаниеТипов("СправочникСсылка.КлючиАналитикиУчетаПартий"));
			return null;
		}
		// СформироватьСтруктуруКолонокТаблицыЗатрат()
		// Функция формирует структуру таблицы значений для отражения производственных затрат в регистрах.
		//

		public object СформироватьТаблицуЗатрат(/**/)
		{
			//СтруктураКолонок = СформироватьСтруктуруКолонокТаблицыЗатрат();
			//ТаблицаЗатрат = Новый ТаблицаЗначений;
			return null;
		}
		// СформироватьТаблицуЗатрат()
		// Функция проверяет соотвествтие счетов и аналитики Дт и КТ и в формируемой проводке.
		//
		// Возвращаемое значение:
		//   Истина – Счета и аналитика одинаковые.
		//   Ложь   - Счета или аналитика разные.
		//

		public object СчетаДтКтИАналитикаВПроводкеОдинаковые(/*СтрокаТабличнойЧасти, СтруктураШапкиДокумента*/)
		{
			//СчетаДтКтИАналитикаОдинаковая = Истина;
			if(true/*СтрокаТабличнойЧасти.СчетЗатрат <> СтрокаТабличнойЧасти.СчетЗатратПолучатель*/)
			{
				//СчетаДтКтИАналитикаОдинаковая = Ложь;
			}
			//ПроизводственныеРасходы = ПроверитьСчетЗатратНаПроизводственныеРасходы(СтрокаТабличнойЧасти.СчетЗатрат, "Хозрасчетный");
			if(true/*ПроизводственныеРасходы*/)
			{
				if(true/*СтрокаТабличнойЧасти.СтатьяЗатрат <> СтрокаТабличнойЧасти.СтатьяЗатратПолучатель
		   ИЛИ СтруктураШапкиДокумента.ПодразделениеОрганизации <> СтрокаТабличнойЧасти.ПодразделениеОрганизацииПолучатель
		   ИЛИ СтрокаТабличнойЧасти.НоменклатурнаяГруппа <> СтрокаТабличнойЧасти.НоменклатурнаяГруппаПолучатель*/)
				{
					//СчетаДтКтИАналитикаОдинаковая = Ложь;
				}
				if(true/*ТипЗнч(СтруктураШапкидокумента.Ссылка) = Тип("ДокументСсылка.КорректировкаПрочихЗатрат")
		   И СтрокаТабличнойЧасти.ОбъектСтроительства <> СтрокаТабличнойЧасти.ОбъектСтроительстваПолучатель*/)
				{
					//СчетаДтКтИАналитикаОдинаковая = Ложь;
				}
			}
			return null;
		}
		// Функция получает таблицу затрат для формирования движений по регистрам.
		//
		// Параметры:
		//	ТаблицаДокумента - ТабличнаяЧасть, ТаблицаЗначений
		//	СтруктураШапкиДокумента - Структура - Реквизиты документа
		//
		// Возвращаемое значение:
		//	ТаблицаЗначений - Таблица затрат
		//

		public object ПолучитьТаблицуЗатрат(/*
	ТаблицаДокумента,
	СтруктураШапкиДокумента
	*/)
		{
			if(true/*ТипЗнч(ТаблицаДокумента) <> Тип("ТаблицаЗначений")*/)
			{
				//ТаблицаЗатрат = ТаблицаДокумента.Выгрузить();
			}
			//СтруктураКолонок = СформироватьСтруктуруКолонокТаблицыЗатрат();
			if(true/*ТаблицаЗатрат.Колонки.Найти("ПроектЗатрат") <> Неопределено*/)
			{
				//МассивПроектов = ТаблицаЗатрат.ВыгрузитьКолонку("ПроектЗатрат");
				//ТаблицаЗатрат.ЗагрузитьКолонку(МассивПроектов, "Проект");
			}
			if(true/*СтруктураШапкиДокумента.Свойство("Организация")*/)
			{
				//ТаблицаЗатрат.ЗаполнитьЗначения(СтруктураШапкиДокумента.Организация, "Организация");
			}
			if(true/*Не ЗначениеЗаполнено(ТаблицаЗатрат[0].ВидДвижения)*/)
			{
				//ТаблицаЗатрат.ЗаполнитьЗначения(ВидДвиженияНакопления.Приход, "ВидДвижения");
			}
			if(true/*ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.ПоступлениеТоваровУслуг")
	 ИЛИ ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.ПоступлениеТоваровУслугВНТТ")
	 ИЛИ ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.АвансовыйОтчет")
	 ИЛИ ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.ПолучениеУслугПоПереработке")
	 ИЛИ ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.КорректировкаПоступления")*/)
			{
				//КодОперации = Перечисления.КодыОперацийЗатраты.УслугиКонтрагентаНаПостоянныеЗатраты;
				//КодОперацииНЗП = Перечисления.КодыОперацийНезавершенноеПроизводство.УслугиКонтрагентаНаПроизводство;
			}
			//ТаблицаЗатрат.ЗаполнитьЗначения(КодОперации, "КодОперации");
			//УдаляемыеКолоноки = Новый Массив;
			return null;
		}
		// ПолучитьТаблицуЗатрат()
		// Процедура дополняет структуру шапки документа.
		//
		// Выходные параметры:
		//	СтруктураШапкиДокумента - Структура - Реквизиты документа
		//

		public void ДополнитьСтруктуруШапкиДокументаУчетЗатрат(/*СтруктураШапкиДокумента*/)
		{
			if(true/*Не СтруктураШапкиДокумента.Свойство("ОтражатьВУправленческомУчете")*/)
			{
				//СтруктураШапкиДокумента.Вставить("ОтражатьВУправленческомУчете", Ложь);
			}
			if(true/*Не СтруктураШапкиДокумента.Свойство("ОтражатьВБухгалтерскомУчете")*/)
			{
				//СтруктураШапкиДокумента.Вставить("ОтражатьВБухгалтерскомУчете", Ложь);
			}
			if(true/*Не СтруктураШапкиДокумента.Свойство("ОтражатьВНалоговомУчете")*/)
			{
				//СтруктураШапкиДокумента.Вставить("ОтражатьВНалоговомУчете", Ложь);
			}
			if(true/*ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.ПоступлениеТоваровУслуг")
	 ИЛИ ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.ПоступлениеТоваровУслугВНТТ")
	 ИЛИ ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.АвансовыйОтчет")
	 ИЛИ ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.ПолучениеУслугПоПереработке")
	 ИЛИ ТипЗнч(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.КорректировкаПоступления")*/)
			{
				//КодОперации = Перечисления.КодыОперацийЗатраты.УслугиКонтрагентаНаПостоянныеЗатраты;
				//КодОперацииНЗП = Перечисления.КодыОперацийНезавершенноеПроизводство.УслугиКонтрагентаНаПроизводство;
			}
			//СтруктураШапкиДокумента.Вставить("КодОперации", КодОперации);
			//СтруктураШапкиДокумента.Вставить("КодОперацииНЗП", КодОперацииНЗП);
		}
		// ДополнитьСтруктуруШапкиДокументаУчетЗатрат()
		// Процедура формирует движения в регистры по прочим затратам по всем видам учета.
		//
		// Параметры:
		//	СтруктураШапкиДокумента - Структура - Реквизиты документа
		//	ТаблицаДокумента - Таблица документа для отражения затрат
		//	ВидОтраженияВУчете - ПеречислениеСсылка.ВидыОтраженияВУчете - Вид отражения в учете
		//

		public void ДвиженияПоПрочимЗатратам(/*
	СтруктураШапкиДокумента, 
	ТаблицаДокумента,
	ВидОтраженияВУчете = Неопределено
	*/)
		{
			if(true/*ТаблицаДокумента.Количество() = 0*/)
			{
			}
			//ДополнитьСтруктуруШапкиДокументаУчетЗатрат(СтруктураШапкиДокумента);
			/*ТаблицаЗатрат = ПолучитьТаблицуЗатрат(
		ТаблицаДокумента,
		СтруктураШапкиДокумента
	);*/
			/*УправлениеЗатратамиДвиженияПоРегистрам.СформироватьДвиженияПоОтражениюЗатрат(
		СтруктураШапкиДокумента,
		ТаблицаЗатрат,
		ВидОтраженияВУчете
	);*/
		}
		// ДвиженияПоПрочимЗатратам()
		// Процедура заполняет субконто учета затрат в проводке по бухгалтерскому или налоговому учету.
		//
		// Параметры
		//	НоваяПроводка - РегистрБухгалтерииЗапись - Текущая проводка
		//	СтрокаТабличнойЧасти - СтрокаТабличнойЧасти - Текущая строка
		//	СтруктураШапкиДокумента - Структура - Реквизиты документа
		//	ИмяПланаСчетов - Строка - Имя текущего плана счетов
		//	Суффикс - Строка - Суффикс заполнения субконто по дебету или по кредиту
		//	ПолучитьПодразделениеИзСтрокиТаблицы - Булево - Признак получения значения подразделения из строки
		//		таблицы.
		//

		public void ЗаполнитьСчетИСубконтоУчетаЗатрат(/*
	НоваяПроводка, 
	СтрокаТабличнойЧасти, 
	СтруктураШапкиДокумента, 
	ИмяПланСчетов = "Хозрасчетный", 
	Суффикс = "Дт",
	ПолучитьПодразделениеИзСтрокиТаблицы = Ложь
	*/)
		{
			if(true/*ИмяПланСчетов = "Хозрасчетный"*/)
			{
				//СчетЗатрат = СтрокаТабличнойЧасти.СчетЗатрат;
			}
			//СчетДтКт = "Счет" + Суффикс;
			//СубконтоДтКт = "Субконто" + Суффикс;
			//ПроизводственныеРасходы = ПроверитьСчетЗатратНаПроизводственныеРасходы(СчетЗатрат, ИмяПланСчетов);
			//НоваяПроводка[СчетДтКт] = СчетЗатрат;
			if(true/*ПроизводственныеРасходы*/)
			{
				if(true/*ПолучитьПодразделениеИзСтрокиТаблицы*/)
				{
					//ПодразделениеОрганизации = СтрокаТабличнойЧасти.ПодразделениеОрганизации;
				}
				/*БухгалтерскийУчет.УстановитьСубконто(
			НоваяПроводка[СчетДтКт],
			НоваяПроводка[СубконтоДтКт],
			"СтатьиЗатрат",
			СтрокаТабличнойЧасти.СтатьяЗатрат
		);*/
				/*БухгалтерскийУчет.УстановитьСубконто(
			НоваяПроводка[СчетДтКт],
			НоваяПроводка[СубконтоДтКт],
			"Подразделения",
			ПодразделениеОрганизации
		);*/
				/*БухгалтерскийУчет.УстановитьСубконто(
			НоваяПроводка[СчетДтКт], 
			НоваяПроводка[СубконтоДтКт],
			"НоменклатурныеГруппы",
			СтрокаТабличнойЧасти.НоменклатурнаяГруппа
		);*/
				/*БухгалтерскийУчет.УстановитьСубконто(
			НоваяПроводка[СчетДтКт], 
			НоваяПроводка[СубконтоДтКт], 
			"ОбъектыСтроительства", 
			СтрокаТабличнойЧасти.ОбъектСтроительства
		);*/
				/*БухгалтерскийУчет.УстановитьСубконто(
			НоваяПроводка[СчетДтКт], 
			НоваяПроводка[СубконтоДтКт], 
			"СпособыСтроительства", 
			СтрокаТабличнойЧасти.СпособСтроительства
		);*/
			}
		}
		// ЗаполнитьСчетИСубконтоУчетаЗатрат()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ РАБОТЫ С АНАЛИТИКОЙ ЗАТРАТ
		// Процедура устанавливает видимость ячеек для ввода аналитики в зависимости от указанной статьи затрат.
		//

		public void УстановитьВидимостьЯчеекАналитикиЗатрат(/*ХарактерЗатрат, Продукция, СчетЗатрат = НЕОПРЕДЕЛЕНО, СчетЗатратНУ = НЕОПРЕДЕЛЕНО, ОформлениеСтроки, ОтражатьВУправленческомУчете, ОтражатьВБухгалтерскомУчете, ОтражатьВНалоговомУчете*/)
		{
			//ХарактерЗатратБУ = ПолучитьХарактерЗатратПоСчетуЗатрат(СчетЗатрат, Неопределено);
			//ХарактерЗатратНУ = ПолучитьХарактерЗатратПоСчетуЗатрат(СчетЗатратНУ, Неопределено, "Налоговый");
			//ПустойХарактерЗатрат    = НЕ ЗначениеЗаполнено(ХарактерЗатрат);
			//ПрочиеРасходы           = (ХарактерЗатрат = Перечисления.ХарактерЗатрат.Прочие);
			//ПрочиеРасходыБУ         = (ХарактерЗатратБУ = Перечисления.ХарактерЗатрат.Прочие);
			//ПрочиеРасходыНУ         = (ХарактерЗатратНУ = Перечисления.ХарактерЗатрат.Прочие);
			//ПрочиеРасходыРегл       = (ХарактерЗатратБУ = Перечисления.ХарактерЗатрат.Прочие) ИЛИ (ХарактерЗатратНУ = Перечисления.ХарактерЗатрат.Прочие);
			/*ПроизводственныеРасходы = (ХарактерЗатрат = Перечисления.ХарактерЗатрат.ПроизводственныеРасходы) 
							   ИЛИ (ХарактерЗатратБУ = Перечисления.ХарактерЗатрат.ПроизводственныеРасходы)
							   ИЛИ (ХарактерЗатратНУ = Перечисления.ХарактерЗатрат.ПроизводственныеРасходы);*/
			/*БракВПроизводстве       = (ХарактерЗатрат = Перечисления.ХарактерЗатрат.БракВПроизводстве)
							   ИЛИ (ХарактерЗатратБУ = Перечисления.ХарактерЗатрат.БракВПроизводстве)
							   ИЛИ (ХарактерЗатратНУ = Перечисления.ХарактерЗатрат.БракВПроизводстве);*/
			/*Строительство           = (ХарактерЗатрат = Перечисления.ХарактерЗатрат.ВложенияВоВнеоборотныеАктивы)
							   ИЛИ (ХарактерЗатратБУ = Перечисления.ХарактерЗатрат.ВложенияВоВнеоборотныеАктивы)
							   ИЛИ (ХарактерЗатратНУ = Перечисления.ХарактерЗатрат.ВложенияВоВнеоборотныеАктивы);*/
			//НоменклатурнаяГруппаДоп = ЛОЖЬ;
			if(true/*НЕ ОформлениеСтроки.Ячейки.Найти("НоменклатурнаяГруппаДоп") = НЕОПРЕДЕЛЕНО*/)
			{
				//НоменклатурнаяГруппаДоп = ПроизводственныеРасходы;
			}
			/*НоменклатурнаяГруппа = (Не ПустойХарактерЗатрат) 
							И НЕ ((ПрочиеРасходы И ПрочиеРасходыБУ И ПрочиеРасходыНУ) ИЛИ Строительство ИЛИ НоменклатурнаяГруппаДоп);*/
			if(true/*НЕ ОформлениеСтроки.Ячейки.Найти("Аналитика") = НЕОПРЕДЕЛЕНО*/)
			{
				//ОформлениеСтроки.Ячейки.Аналитика.Видимость = Ложь;
			}
			if(true/*НЕ ОформлениеСтроки.Ячейки.Найти("НоменклатурнаяГруппаДоп") = НЕОПРЕДЕЛЕНО*/)
			{
				if(true/*ОформлениеСтроки.Ячейки.НоменклатурнаяГруппаДоп.Видимость <> НоменклатурнаяГруппаДоп*/)
				{
					//ОформлениеСтроки.Ячейки.НоменклатурнаяГруппаДоп.Видимость      = НоменклатурнаяГруппаДоп;
					//ОформлениеСтроки.Ячейки.НоменклатурнаяГруппаДоп.ТолькоПросмотр = НЕ НоменклатурнаяГруппаДоп;
				}
			}
			if(true/*ОформлениеСтроки.Ячейки.НоменклатурнаяГруппа.Видимость <> НоменклатурнаяГруппа*/)
			{
				//ОформлениеСтроки.Ячейки.НоменклатурнаяГруппа.Видимость      = НоменклатурнаяГруппа;
				//ОформлениеСтроки.Ячейки.НоменклатурнаяГруппа.ТолькоПросмотр = НЕ НоменклатурнаяГруппа;
			}
			//ЕстьСпособРаспределенияЗатратНаВыпуск = Ложь;
			if(true/*НЕ ОформлениеСтроки.Ячейки.Найти("СпособРаспределенияЗатратНаВыпуск") = НЕОПРЕДЕЛЕНО*/)
			{
				//ОформлениеСтроки.Ячейки.СпособРаспределенияЗатратНаВыпуск.Видимость      =    ПроизводственныеРасходы;
				//ОформлениеСтроки.Ячейки.СпособРаспределенияЗатратНаВыпуск.ТолькоПросмотр = НЕ ПроизводственныеРасходы;
				//ЕстьСпособРаспределенияЗатратНаВыпуск = Истина;
			}
			if(true/*НЕ ОформлениеСтроки.Ячейки.Найти("СпособРаспределенияЗатратНаВыпускПолучатель") = НЕОПРЕДЕЛЕНО*/)
			{
				//ОформлениеСтроки.Ячейки.СпособРаспределенияЗатратНаВыпускПолучатель.Видимость      =    ПроизводственныеРасходы;
				//ОформлениеСтроки.Ячейки.СпособРаспределенияЗатратНаВыпускПолучатель.ТолькоПросмотр = НЕ ПроизводственныеРасходы;
			}
			if(true/*НЕ ОформлениеСтроки.Ячейки.Найти("ВидАналитики") = НЕОПРЕДЕЛЕНО*/)
			{
				//ОформлениеСтроки.Ячейки.ВидАналитики.Видимость          = НЕ ((ПрочиеРасходы И ПрочиеРасходыБУ И ПрочиеРасходыНУ) ИЛИ ПустойХарактерЗатрат);
				//ОформлениеСтроки.Ячейки.ВидАналитики.ОтображатьТекст    = Истина;
				//ОформлениеСтроки.Ячейки.ВидАналитикиДоп.ОтображатьТекст = Истина;
				if(true/*Строительство*/)
				{
					//ОформлениеСтроки.Ячейки.ВидАналитики.Текст = "Объект строительства / Способ строительства";
				}
				//ОформлениеСтроки.Ячейки.ВидАналитикиДоп.Видимость = БракВПроизводстве;
				if(true/*БракВПроизводстве*/)
				{
					//ОформлениеСтроки.Ячейки.ВидАналитикиДоп.Текст = "Продукция";
				}
			}
			if(true/*ПрочиеРасходыБУ И ЗначениеЗаполнено(СчетЗатрат)*/)
			{
				//КоличествоСубконто = СчетЗатрат.ВидыСубконто.Количество();
			}
			if(true/*ПрочиеРасходыНУ И ЗначениеЗаполнено(СчетЗатратНУ)*/)
			{
				//КоличествоСубконтоНУ = СчетЗатратНУ.ВидыСубконто.Количество();
			}
			//ОдинаковаяАналитикаБУ_НУ = Истина;
			if(true/*КоличествоСубконто = КоличествоСубконтоНУ 
	   и ПрочиеРасходыБУ И ЗначениеЗаполнено(СчетЗатрат)
	   и ПрочиеРасходыНУ И ЗначениеЗаполнено(СчетЗатратНУ)*/)
			{
				if(true/*КоличествоСубконто > 0 
		   И СчетЗатрат.ВидыСубконто.Получить(0).ВидСубконто <>СчетЗатратНУ.ВидыСубконто.Получить(0).ВидСубконто*/)
				{
					//ОдинаковаяАналитикаБУ_НУ = Ложь;
				}
				if(true/*КоличествоСубконто > 1
		   И СчетЗатрат.ВидыСубконто.Получить(1).ВидСубконто <>СчетЗатратНУ.ВидыСубконто.Получить(1).ВидСубконто*/)
				{
					//ОдинаковаяАналитикаБУ_НУ = Ложь;
				}
				if(true/*КоличествоСубконто > 2 
		   И СчетЗатрат.ВидыСубконто.Получить(2).ВидСубконто <>СчетЗатратНУ.ВидыСубконто.Получить(2).ВидСубконто*/)
				{
					//ОдинаковаяАналитикаБУ_НУ = Ложь;
				}
			}
			if(true/*НЕ ОформлениеСтроки.Ячейки.Найти("ВидСубконто3") = НЕОПРЕДЕЛЕНО*/)
			{
				//ОформлениеСтроки.Ячейки.ВидСубконто1.Видимость = ПрочиеРасходыБУ И ОтражатьВБухгалтерскомУчете И (КоличествоСубконто <> 0);
				//ОформлениеСтроки.Ячейки.ВидСубконто2.Видимость = ПрочиеРасходыБУ И ОтражатьВБухгалтерскомУчете И (КоличествоСубконто <> 0);
				//ОформлениеСтроки.Ячейки.ВидСубконто3.Видимость = ПрочиеРасходыБУ И ОтражатьВБухгалтерскомУчете И (КоличествоСубконто <> 0);
				//ОформлениеСтроки.Ячейки.ВидСубконто1.ОтображатьТекст = Истина;
				//ОформлениеСтроки.Ячейки.ВидСубконто2.ОтображатьТекст = Истина;
				//ОформлениеСтроки.Ячейки.ВидСубконто3.ОтображатьТекст = Истина;
				if(true/*ПрочиеРасходыБУ И ЗначениеЗаполнено(СчетЗатрат)*/)
				{
					if(true/*КоличествоСубконто > 0*/)
					{
						//ОформлениеСтроки.Ячейки.ВидСубконто1.Текст = СчетЗатрат.ВидыСубконто.Получить(0).ВидСубконто;
					}
					if(true/*КоличествоСубконто > 1*/)
					{
						//ОформлениеСтроки.Ячейки.ВидСубконто2.Текст = СчетЗатрат.ВидыСубконто.Получить(1).ВидСубконто;
					}
					if(true/*КоличествоСубконто > 2*/)
					{
						//ОформлениеСтроки.Ячейки.ВидСубконто3.Текст = СчетЗатрат.ВидыСубконто.Получить(2).ВидСубконто;
					}
				}
			}
			if(true/*НЕ ОформлениеСтроки.Ячейки.Найти("ВидСубконтоНУ3") = НЕОПРЕДЕЛЕНО*/)
			{
				//ОформлениеСтроки.Ячейки.ВидСубконтоНУ1.Видимость = ПрочиеРасходыНУ И ОтражатьВНалоговомУчете И (КоличествоСубконтоНУ <> 0) И НЕ ОдинаковаяАналитикаБУ_НУ;
				//ОформлениеСтроки.Ячейки.ВидСубконтоНУ2.Видимость = ПрочиеРасходыНУ И ОтражатьВНалоговомУчете И (КоличествоСубконтоНУ <> 0) И НЕ ОдинаковаяАналитикаБУ_НУ;
				//ОформлениеСтроки.Ячейки.ВидСубконтоНУ3.Видимость = ПрочиеРасходыНУ И ОтражатьВНалоговомУчете И (КоличествоСубконтоНУ <> 0) И НЕ ОдинаковаяАналитикаБУ_НУ;
				//ОформлениеСтроки.Ячейки.ВидСубконтоНУ1.ОтображатьТекст = Истина;
				//ОформлениеСтроки.Ячейки.ВидСубконтоНУ2.ОтображатьТекст = Истина;
				//ОформлениеСтроки.Ячейки.ВидСубконтоНУ3.ОтображатьТекст = Истина;
				if(true/*ПрочиеРасходыНУ И ЗначениеЗаполнено(СчетЗатратНУ)*/)
				{
					if(true/*КоличествоСубконтоНУ > 0*/)
					{
						//ОформлениеСтроки.Ячейки.ВидСубконтоНУ1.Текст = СчетЗатратНУ.ВидыСубконто.Получить(0).ВидСубконто;
					}
					if(true/*КоличествоСубконтоНУ > 1*/)
					{
						//ОформлениеСтроки.Ячейки.ВидСубконтоНУ2.Текст = СчетЗатратНУ.ВидыСубконто.Получить(1).ВидСубконто;
					}
					if(true/*КоличествоСубконтоНУ > 2*/)
					{
						//ОформлениеСтроки.Ячейки.ВидСубконтоНУ3.Текст = СчетЗатратНУ.ВидыСубконто.Получить(2).ВидСубконто;
					}
				}
			}
			if(true/*НЕ ОформлениеСтроки.Ячейки.Найти("Продукция") = НЕОПРЕДЕЛЕНО*/)
			{
				if(true/*БракВПроизводстве
		   И Продукция.ВестиУчетПоХарактеристикам*/)
				{
					//ВидимостьХарактеристикаПродукции = глЗначениеПеременной("ИспользоватьХарактеристикиНоменклатуры");
				}
				if(true/*БракВПроизводстве
		   И Продукция.ВестиУчетПоСериям*/)
				{
					//ВидимостьСерияПродукции = глЗначениеПеременной("ИспользоватьСерииНоменклатуры");
				}
				//ОформлениеСтроки.Ячейки.Продукция.Видимость               = БракВПроизводстве;
				//ОформлениеСтроки.Ячейки.ХарактеристикаПродукции.Видимость = ВидимостьХарактеристикаПродукции;
				//ОформлениеСтроки.Ячейки.СерияПродукции.Видимость          = ВидимостьСерияПродукции;
				//ОформлениеСтроки.Ячейки.Продукция.ТолькоПросмотр               = НЕ БракВПроизводстве;
				//ОформлениеСтроки.Ячейки.ХарактеристикаПродукции.ТолькоПросмотр = НЕ ВидимостьХарактеристикаПродукции;
				//ОформлениеСтроки.Ячейки.СерияПродукции.ТолькоПросмотр          = НЕ ВидимостьСерияПродукции;
			}
			if(true/*НЕ ОформлениеСтроки.Ячейки.Найти("ОбъектСтроительства") = НЕОПРЕДЕЛЕНО*/)
			{
				//ОформлениеСтроки.Ячейки.ОбъектСтроительства.Видимость = Строительство;
				//ОформлениеСтроки.Ячейки.ОбъектСтроительства.ТолькоПросмотр = НЕ Строительство;
			}
			if(true/*НЕ ОформлениеСтроки.Ячейки.Найти("СпособСтроительства") = НЕОПРЕДЕЛЕНО*/)
			{
				//ОформлениеСтроки.Ячейки.СпособСтроительства.Видимость = Строительство;
				//ОформлениеСтроки.Ячейки.СпособСтроительства.ТолькоПросмотр = НЕ Строительство;
			}
			if(true/*НЕ ОформлениеСтроки.Ячейки.Найти("Субконто1") = НЕОПРЕДЕЛЕНО*/)
			{
				//ОформлениеСтроки.Ячейки.Субконто1.Видимость = ПрочиеРасходыБУ И ОтражатьВБухгалтерскомУчете И (КоличествоСубконто <> 0);
				//ОформлениеСтроки.Ячейки.Субконто2.Видимость = ПрочиеРасходыБУ И ОтражатьВБухгалтерскомУчете И (КоличествоСубконто <> 0);
				//ОформлениеСтроки.Ячейки.Субконто3.Видимость = ПрочиеРасходыБУ И ОтражатьВБухгалтерскомУчете И (КоличествоСубконто <> 0);
				//ОформлениеСтроки.Ячейки.Субконто1.ТолькоПросмотр = (КоличествоСубконто < 1) ИЛИ НЕ (ПрочиеРасходыБУ И ОтражатьВБухгалтерскомУчете);
				//ОформлениеСтроки.Ячейки.Субконто2.ТолькоПросмотр = (КоличествоСубконто < 2) ИЛИ НЕ (ПрочиеРасходыБУ И ОтражатьВБухгалтерскомУчете);
				//ОформлениеСтроки.Ячейки.Субконто3.ТолькоПросмотр = (КоличествоСубконто < 3) ИЛИ НЕ (ПрочиеРасходыБУ И ОтражатьВБухгалтерскомУчете);
				//ОформлениеСтроки.Ячейки.СубконтоНУ1.Видимость = ПрочиеРасходыНУ И ОтражатьВНалоговомУчете И (КоличествоСубконтоНУ <> 0) И НЕ ОдинаковаяАналитикаБУ_НУ;
				//ОформлениеСтроки.Ячейки.СубконтоНУ2.Видимость = ПрочиеРасходыНУ И ОтражатьВНалоговомУчете И (КоличествоСубконтоНУ <> 0) И НЕ ОдинаковаяАналитикаБУ_НУ;
				//ОформлениеСтроки.Ячейки.СубконтоНУ3.Видимость = ПрочиеРасходыНУ И ОтражатьВНалоговомУчете И (КоличествоСубконтоНУ <> 0) И НЕ ОдинаковаяАналитикаБУ_НУ;
				//ОформлениеСтроки.Ячейки.СубконтоНУ1.ТолькоПросмотр = (КоличествоСубконтоНУ < 1) ИЛИ НЕ (ПрочиеРасходыНУ И ОтражатьВНалоговомУчете);
				//ОформлениеСтроки.Ячейки.СубконтоНУ2.ТолькоПросмотр = (КоличествоСубконтоНУ < 2) ИЛИ НЕ (ПрочиеРасходыНУ И ОтражатьВНалоговомУчете);
				//ОформлениеСтроки.Ячейки.СубконтоНУ3.ТолькоПросмотр = (КоличествоСубконтоНУ < 3) ИЛИ НЕ (ПрочиеРасходыНУ И ОтражатьВНалоговомУчете);
			}
		}
		// УстановитьВидимостьЯчеекАналитикиЗатрат()
		// Процедура устанавливает статью затрат в субконто.
		// Используется когда в документе есть статья затрат и счет
		// с субконто вида "СтатьяЗатрат".
		//

		public void УстановитьСубконтоСтатьяЗатрат(/*Знач СтатЗатрат, Знач Счет, Субк1, Субк2, Субк3*/)
		{
			//ВидСубк = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные["СтатьиЗатрат"];
			if(true/*Счет.ВидыСубконто.Найти( ВидСубк) = Неопределено*/)
			{
			}
			//НомерСубконто = Счет.ВидыСубконто.Найти( ВидСубк).НомерСтроки;
			if(true/*НомерСубконто = 1*/)
			{
				//Субк1 = СтатЗатрат;
			}
		}
		// УстановитьСубконтоСтатьяЗатрат()
		// Функция возвращает подразделение организации, соответствующее подразделению компании.
		//
		// Параметры:
		//	Организация - СправочникСсылка.Организации
		//	Подразделение - СправочникСсылка.Подразделения
		//	ОтражатьВБухгалтерскомУчете - Булево - Признак отражения документа в бух. учете
		//
		// Возвращаемое значение:
		//	СправочникСсылка.ПодразделенияОрганизаций - Подразделение организации
		//

		public object ПолучитьПодразделениеОрганизации(/*
	Организация,
	Подразделение,
	ОтражатьВБухгалтерскомУчете
	*/)
		{
			//ПодразделениеОрганизации = Справочники.ПодразделенияОрганизаций.ПустаяСсылка();
			if(true/*ОтражатьВБухгалтерскомУчете*/)
			{
				/*ТекстЗапроса = "
		|ВЫБРАТЬ ПЕРВЫЕ 1
		|	СоответствиеПодразделений.ПодразделениеОрганизации
		|ИЗ
		|	РегистрСведений.СоответствиеПодразделенийИПодразделенийОрганизаций КАК СоответствиеПодразделений
		|
		|ГДЕ
		|	СоответствиеПодразделений.Подразделение = &Подразделение
		|	И СоответствиеПодразделений.Организация = &Организация
		|	И СоответствиеПодразделений.ПодразделениеОрганизации <> ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
		|";*/
				//Запрос = Новый Запрос;
				//Запрос.Текст = ТекстЗапроса;
				//Запрос.УстановитьПараметр("Подразделение", Подразделение);
				//Запрос.УстановитьПараметр("Организация", Организация);
				//РезультатЗапроса = Запрос.Выполнить();
				//Выборка = РезультатЗапроса.Выбрать();
				if(true/*Выборка.Следующий()*/)
				{
					//ПодразделениеОрганизации = Выборка.ПодразделениеОрганизации;
				}
			}
			return null;
		}
		// ПолучитьПодразделениеОрганизации();
		// Процедура заполняет номенклатурную группу и статью затрат в строке табличной части.
		//

		public void ЗаполнитьНоменклатурнуюГруппуИСтатьюЗатратВСтрокеТабличногоПоля(/*СтрокаТабличнойЧасти, ЕстьСтатьяЗатрат = Истина, ЕстьНоменклатурнаяГруппа = Истина*/)
		{
			if(true/*ЗначениеЗаполнено(СтрокаТабличнойЧасти.Номенклатура)*/)
			{
				if(true/*ЕстьСтатьяЗатрат*/)
				{
					//СтрокаТабличнойЧасти.СтатьяЗатрат = СтрокаТабличнойЧасти.Номенклатура.СтатьяЗатрат;
				}
				if(true/*ЕстьНоменклатурнаяГруппа*/)
				{
					//СтрокаТабличнойЧасти.НоменклатурнаяГруппа = СтрокаТабличнойЧасти.Номенклатура.НоменклатурнаяГруппаЗатрат;
				}
			}
		}
		// ЗаполнитьНоменклатурнуюГруппуИСтатьюЗатратВСтрокеТабличногоПоля()
		// Процедура заполняет значение счета затрат в табличной части документа в зависимости от статьи затрат.
		//

		public void ЗаполнитьСчетЗатратВСтрокеТабличногоПоля(/*СтрокаТабличнойЧасти, ПодразделениеОрганизации, СтатьяЗатрат, ИмяСчетаЗатрат = "СчетЗатрат", ИмяСчетаЗатратНУ = "СчетЗатратНУ",ИмяКорСчета=неопределено*/)
		{
			//КорСчет = ?(ИмяКорСчета=неопределено,неопределено,СтрокаТабличнойЧасти[ИмяКорСчета]);
			//СчетаУчета = ПолучитьСчетаУчетаСтатьиЗатрат(ПодразделениеОрганизации, СтатьяЗатрат,КорСчет);
			//СтрокаТабличнойЧасти[ИмяСчетаЗатрат]   = СчетаУчета.СчетУчетаБУ;
			//СтрокаТабличнойЧасти[ИмяСчетаЗатратНУ] = СчетаУчета.СчетУчетаНУ;
		}
		// ЗаполнитьСчетЗатратВСтрокеТабличногоПоля()
		// Процедура заполняет значение счета затрат НУ в табличной части документа.
		//

		public void ЗаполнитьСчетЗатратНУВСтрокеТабличногоПоля(/*СтрокаТабличнойЧасти*/)
		{
			//СчетЗатратНУ = ПолучитьСчетПрямыхРасходовНУ(СтрокаТабличнойЧасти.СчетЗатрат);
			//СтрокаТабличнойЧасти.СчетЗатратНУ = СчетЗатратНУ;
		}
		// ЗаполнитьСчетЗатратНУВСтрокеТабличногоПоля()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ ПРОВЕРКИ ЗАПОЛНЕНИЯ РЕКВИЗИТОВ
		// Процедура проверяет соответствие подразделения организации и организации в документе.
		//
		// Параметры
		//  ДокументОбъект - Документ, в котором проверяется соответствие
		//  Отказ          - Значению параметра будет присвоено Истина, если соответствия нет
		//  Заголовок      - Заголовок сообщения о том, что соответствия нет

		public void ПроверитьПодразделениеОрганизации(/*ДокументОбъект, Отказ, Заголовок*/)
		{
			if(true/*Не ДокументОбъект.ОтражатьВБухгалтерскомУчете*/)
			{
			}
			if(true/*ЗначениеЗаполнено(ДокументОбъект.Организация)
	   И ЗначениеЗаполнено(ДокументОбъект.ПодразделениеОрганизации)
	   И Не ДокументОбъект.ПодразделениеОрганизации.Владелец = ДокументОбъект.Организация*/)
			{
				//ОбщегоНазначения.СообщитьОбОшибке("Указанное в документе подразделение не соответствует организации!", Отказ, Заголовок);
			}
		}
		// ПроверитьПодразделениеОрганизации()
		// Процедура проверяет соответствие подразделения организации в строках табличной части документа
		// и организации в шапке документа.
		//
		// Параметры
		//  ДокументОбъект - Документ, в котором проверяется соответствие
		//  ТабЧасть       - Табличная часть, в строках которой проверяется
		//  ИмяТабЧасти    - Имя табличной части
		//  ИмяРеквизитаТЧ - Имя реквизита с проверяемыми значениями
		//  Отказ          - Значению параметра будет присвоено Истина, если соответствия нет
		//  Заголовок      - Заголовок сообщения о том, что соответствия нет

		public void ПроверитьПодразделениеОрганизацииВСтрокахТабЧасти(/*ДокументОбъект, ТабЧасть, ИмяТабЧасти, ИмяРеквизитаТЧ = "ПодразделениеОрганизации", Отказ, Заголовок*/)
		{
			if(true/*Не ДокументОбъект.ОтражатьВБухгалтерскомУчете*/)
			{
			}
			if(true/*НЕ ЗначениеЗаполнено(ДокументОбъект.Организация)*/)
			{
			}
		}
		// ПроверитьПодразделениеОрганизацииВСтрокахТабЧасти()
	}
}
